home *** CD-ROM | disk | FTP | other *** search
/ Gigarom 4 / Mac Giga-ROM 4.0 - 1993.toast / FILES / DEV / I-Z / ViewIt™ Shareware.sea / ViewIt™ 2.04 Shareware / Projects / Fortran Demos / vDemoLF.f < prev    next >
Text File  |  1992-08-04  |  5KB  |  144 lines

  1. C NOTE: Read the "MPW Fortrans" section of "About Compilers"
  2. C before compiling LF programs that use FaceWare modules.
  3.  
  4. C ViewIt 2.03 Demonstration Program
  5. C ©FaceWare 1991-92.  All Rights Reserved.
  6.  
  7. !!M Inlines.f
  8. !!I FaceProcLF.inc
  9.  
  10.       PROGRAM vDemoLF
  11.     implicit none
  12. C NOTE: If you use the "!!G" directive for precompiled globals, add
  13. C our FaceStorLF.inc globals to yours and then remove following line
  14.     include 'FaceStorLF.inc'
  15.       record /FaceRec/ fRec
  16.       common/FaceStuff/fRec
  17.     logical*4 helpShown
  18.     integer*4 myPtr
  19.     structure /DataRec/
  20.       integer*2 myInteger
  21.       real*4 myReal
  22.       character*100 myString
  23.       integer*4 myFlags
  24.     end structure
  25.     record /DataRec/ myRec
  26.     common /MyStuff/ myRec
  27.     real*4 theReal
  28.  
  29.     myRec.myInteger = 0
  30.     myRec.myReal = 6.2
  31.     myRec.myString = 'Hello'
  32.     myRec.myFlags = 10
  33.     theReal = 6.0
  34.  
  35. C Initialize FaceIt
  36.       fRec.uName = 'vDemo.Rsrc'
  37.       call FaceIt(0,DoInit,0,0,0,0)
  38.  
  39. C Show ViewIt On-Line Help (if available)
  40.     call FaceIt(0,HlpWnd,0,0,10,10)
  41.  
  42. C Open Modeless Window using FWND 1000
  43.     call FaceIt(0,NewWnd,1000,1,0,0)
  44.  
  45.       do while (.true.)
  46.         call FaceIt(0,DoLoop,0,0,0,0)
  47. C Standard "About" Menu Item Selection
  48.       if ((fRec.uMenuID = 101).and.(fRec.uMenuItem = 1)) then
  49.         fRec.uString = 'Demonstration of the use of ViewIt'
  50.      +//char(13)//'windows in a FaceIt-based program.'
  51.         call FaceIt(0,ShoStr,3,12,(1 + (409*65536)),0)
  52. C Hit in Modeless Window's "Open Modal" Button
  53.       else if ((fRec.uMenuID = 1000).and.(fRec.wcHit = 2)) then
  54.         call FaceIt(0,NewWnd,1001,0,0,0)  !Open Modal Window
  55.         do while (.true.)
  56.           call FaceIt(0,MdlWnd,1001,0,0,0)  !Process Modal Events
  57.         if (fRec.wcHit = -1) then        !Hit in Close Box
  58.           exit
  59.         else if (fRec.wcHit = 1) then     !Hit in "Open Nested"
  60.           myPtr = %loc(myRec)
  61.           call FaceIt(0,NewWnd,1002,0,0,myPtr)!Open Nested Modal
  62.           call FaceIt(0,GetCtl,1002,0,2,3)      !Setup Override Examples
  63.           call FaceIt(0,OvrCtl,fRec.cControl,%loc(OverProc),0,0)
  64.           call FaceIt(0,GetCtl,1002,0,2,6)
  65.           call FaceIt(0,OvrCtl,fRec.cControl,%loc(OverProc),0,0)
  66.           call FaceIt(0,GetCtl,1002,0,2,7)
  67.           call FaceIt(0,OvrCtl,fRec.cControl,%loc(OverProc),0,0)
  68.           call FaceIt(0,SetVal,1002,0,0,0)      !Set Linked Values
  69.           helpShown = .false.
  70.           do while (.true.)
  71.             call FaceIt(0,MdlWnd,1002,0,0,0)  !Process Modal Events
  72.             if (fRec.wvHit = 1) then          !Hit in View #1
  73.               if (fRec.wcHit = 1) then      !Hit in "OK" Button
  74.               exit
  75.             else if (fRec.wcHit = 2) then   !Hit in "Show/Hide"
  76.               if (helpShown) then
  77.                 call FaceIt(0,ShoCtl,0,0,-3,2)  !Hide v3, Show v2
  78.                 helpShown = .false.
  79.               else
  80.                 call FaceIt(0,ShoCtl,0,0,-2,3)  !Hide v2, Show v3
  81.                 helpShown = .true.
  82.               end if
  83.             end if
  84.             end if
  85.           end do
  86.           call FaceIt(0,GetVal,1002,0,0,0)      !Get Linked Values
  87.           call FaceIt(0,EndWnd,1002,0,0,0)      !Close Nested Modal
  88.         end if
  89.         end do
  90.         call FaceIt(0,EndWnd,1001,0,0,0)  !Close Modal Window
  91. C Hit in Modeless Window's "Why ViewIt?" Button
  92.       else if ((fRec.uMenuID = 1000).and.(fRec.wcHit = 3)) then
  93.         call FaceIt(0,NewWnd,1003,0,0,%loc(theReal))
  94.         call FaceIt(0,SetVal,1003,0,0,0)
  95.         do while (.true.)
  96.           call FaceIt(0,MdlWnd,1003,0,0,0)
  97.         if (fRec.wcHit = 1) exit
  98.         end do
  99.         call FaceIt(0,GetVal,1003,0,0,0)
  100.         call FaceIt(0,EndWnd,1003,0,0,0)
  101.       end if
  102.     end do
  103.     end
  104.  
  105.     SUBROUTINE OverProc(%val(thePtr))
  106.     implicit none
  107. C NOTE: If you use the "!!G" directive for precompiled globals, add
  108. C our FaceStorLF.inc globals to yours and then remove following line
  109.     include 'FaceStorLF.inc'
  110.       record /FaceRec/ fRec
  111.       common/FaceStuff/fRec
  112.     structure /DataRec/
  113.       integer*2 myInteger
  114.       real*4 myReal
  115.       character*100 myString
  116.       integer*4 myFlags
  117.     end structure
  118.     record /DataRec/ myRec
  119.     common /MyStuff/ myRec
  120.     integer*4 thePtr,theArrow
  121.     real*4 delta
  122.     if (fRec.cResID = 1000) then      !Arrow Controls
  123.       if (fRec.uCommand = 8) then        !mouse down message?
  124.         delta = 0.001 * (fRec.cMin - 2)
  125.         theArrow = fRec.cControl
  126.         call HiliteControl(%val(theArrow),%val(int2(1)))
  127.         do while (StillDown())
  128.           myRec.myReal = myRec.myReal + delta
  129.         call FaceIt(0,SetVal,0,0,2,2)
  130.         call Delay(%val(5),fRec.uI4)
  131.         end do
  132.         call HiliteControl(%val(theArrow),%val(int2(0)))
  133.         return
  134.       end if
  135.     else                        !Editable Text Item
  136.       if (fRec.uCommand = 264) then    !a key down message?
  137.         if (fRec.uParam(1) = 32) then    !SPACE key pressed?
  138.           fRec.uParam(1) = 95        !convert to UNDERLINE
  139.         end if
  140.       end if
  141.     end if
  142.     call fJumpIt(%val(long(thePtr)),thePtr) !pass message to driver
  143.     end
  144.